﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
using DDOS.Camera;

namespace DDOS.Objects
{
    public abstract class GameObject
    {
       private BoundingObject bounding_object;

       protected Camera3D camera;

       protected bool isActive;

       public bool active()
       {
           return isActive;
       }

       public BoundingObject boundingObject
       {
           get { return bounding_object; }
           set
           {
               bounding_object = value;
               bounding_object.parent = this;
           }
       }

       protected Vector2 coordinates;
       protected Texture2D texture;
       protected Vector2 velocity;

       public Vector2 Coordinates
       {
           get { return coordinates; }
           set { coordinates = value; }
       }

       public abstract void Update(GameTime game_time);

       public abstract void InitializeComponents();

       public virtual void CollisionCallback(BoundingObject other, BoundingObject self)
       {

       }

       public abstract void Draw();
       
    }
}
